package cn.ondraw.ragflow.service;

import cn.ondraw.ragflow.pojo.request.ChatNonStreamResponse;
import cn.ondraw.ragflow.pojo.request.ChatRequest;
import cn.ondraw.ragflow.pojo.request.ChatStreamResponse;

public interface OpenAICompatibleService {
    /**
     * 创建聊天完成
     *
     * @param chatId  聊天 ID
     * @param request 聊天请求对象
     * @return 非流形式的聊天响应对象
     */
    ChatNonStreamResponse createChatCompletion(String chatId, ChatRequest request);

    /**
     * 创建聊天完成（流形式）
     *
     * @param chatId  聊天 ID
     * @param request 聊天请求对象
     * @return 流形式的聊天响应对象
     */
    ChatStreamResponse createChatCompletionStream(String chatId, ChatRequest request);

    /**
     * 创建代理完成
     *
     * @param agentId 代理 ID
     * @param request 聊天请求对象
     * @return 非流形式的聊天响应对象
     */
    ChatNonStreamResponse createAgentCompletion(String agentId, ChatRequest request);

    /**
     * 创建代理完成（流形式）
     *
     * @param agentId 代理 ID
     * @param request 聊天请求对象
     * @return 流形式的聊天响应对象
     */
    ChatStreamResponse createAgentCompletionStream(String agentId, ChatRequest request);
}
